【发布时间】:2018-10-25 15:12:31
【问题描述】:
我正在尝试初始化一个 char *tab[],这会导致分段错误,我做错了什么?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <float.h>
int main()
{
char **cle_par = NULL;
cle_par = (char**) calloc (22, sizeof (char *)+1);
int y=0;
for (y=0; y<22; y++);
{
cle_par[y]=(char *) malloc(45*sizeof(char));
}
strcpy(cle_par[0], "this_is_a_test");
}
【问题讨论】:
-
错字:多余的分号:
for (y=0; y<22; y++);->for (y=0; y<22; y++) -
另一个为什么左大括号应该不单独一行的例子。
-
+1中的sizeof (char *)+1是什么? -
天哪,你是对的.. 我很惊讶没有警告。非常感谢
-
@TsakiroglouFotis:哪个阵列?我只看到一个指针。
标签: c initialization malloc strcpy calloc