使用malloc/calloc初始化char*tab[]
我试图初始化一个char*tab[],这会导致分段错误,我做错了什么使用malloc/calloc初始化char*tab[],c,initialization,malloc,strcpy,calloc,C,Initialization,Malloc,Strcpy,Calloc,我试图初始化一个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; f
#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");
}
#包括
#包括
#包括
#包括
int main()
{
字符**cle_par=NULL;
cle_par=(char**)calloc(22,sizeof(char*)+1);
int y=0;
for(y=0;y您的代码有一个“输入错误”,该错误使for循环无效,并使其成为空循环
for(y=0;yTypo:extra分号:for(y=0;yfor(y=0;yan)另一个例子说明了为什么开口大括号不应该在它自己的行上。在sizeof(char*)+1
中的+1
是什么意思?哦,天啊,你说得对……我很惊讶没有警告。谢谢lot@TsakiroglouFotis:哪个数组?我只看到一个指针。