[问题]请问C语言二为动态阵列输入字串

楼主: hunkchen2000 (我没钱)   2016-09-25 13:20:05
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j;
char k[10];
char **ptr = (char **) malloc(2 * sizeof(char *));
for (i=0;i<3;i++)
{
ptr[i]=(char*)malloc(3 * sizeof(char));
}
//
作者: ilikekotomi (Young)   2016-09-25 13:35:00
printf用了%s应该是会印到阵列出现\0虽然不知道原本用途 但改用%c应该比较符合你的逻辑
作者: EdisonX (卡卡兽)   2016-09-25 13:40:00
应该会先 crash ?? 第一个 for 应该到 2
作者: ilikekotomi (Young)   2016-09-25 13:41:00
搞错你意思 原来是要6个字串由于每次你都是存到k这个阵列 所以会错掉如果你印是要用阵列的话却时要3维没错然后prt[i][j] = (char*)malloc(10*sizeof(char))将ptr[i][j]初始化后 用strcpy从k复制到ptr[i][j]但建议你不要用到那么多 或是改用C++的string应该是没什么必要弄成2*3阵列的字串才对建议你进一步厘清pointer和字串的观念来写会比较好
作者: pttworld (批踢踢世界)   2016-09-25 14:23:00
1000和3的关系是。。?

Links booklink

Contact Us: admin [ a t ] ucptt.com