【发布时间】:2015-04-14 15:33:43
【问题描述】:
我必须在 C 中的字符串数组中插入字符串。我写了一个函数,但它不起作用。你能帮帮我吗?
当我要打印数组时,程序崩溃了。
谢谢
int leggi(char **a, int *len) {
int i;
scanf("%d", len);
if(*len <= 0) return 1;
a = (char **) malloc(*len * sizeof(char *));
if(a == NULL) return 1;
for( i = 0; i < *len; i++ )
{
a[i]=(char *)malloc(101*sizeof(char));
scanf("%s", &a[i]);
}
printf("Saved\n");
return 0;
}
int main() {
int i, n;
char **A;
if(leggi(A, &n)) return 1;
printf("%d\n",n);
for( i = 0; i < n; i++ )
{
printf("printf\n");
printf("%s\n", &A[i]);
}
return 0;
}
【问题讨论】:
-
printf("%s\n", &A[i]);应该是printf("%s\n", A[i]); -
“没用”是什么意思?你发现了什么问题?
-
永远不要强制转换 malloc() 的结果。
-
必须强制转换 malloc()!它返回一个 void* 但我有 char* 和 char**!
-
"malloc() 必须强制转换":不,在 C 中这不是必需的:stackoverflow.com/q/605845/694576
标签: c arrays string algorithm malloc