【发布时间】:2014-01-02 11:52:06
【问题描述】:
我正在学习 c 中的指针 我写了一个小程序,但我遇到了段错误 我不知道我在哪里遇到问题 请让我知道代码的问题,它是一个指向字符串的指针数组, 这是一个指向结构的指针。
# include <stdio.h>
#include <stdlib.h>
# include <string.h>
char *sum(char **sol) ;
char *summer_sum(char*** solcs) ;
int main()
{
char* datum ="teststring";
sum(&datum);
}
char *sum(char** sol)
{
printf("\n value is : %s",*sol);
summer_sum(&sol);
return "1" ;
}
char *summer_sum(char*** solcs)
{
int i=0;
typedef struct
{
char *asg[40];
}nlist;
nlist *n1;
for( i=0 ; i<= 38 ;i++)
{
n1->asg[i] = calloc(1,1*sizeof(*solcs));
strcpy(n1->asg[i],**solcs);
printf("\n %d value is : %s",i,n1->asg[i]);
}
return NULL;
}
【问题讨论】:
-
有什么理由将返回类型用作
char *,什么时候根本不使用?此外,如果您正在使用动态内存,请习惯使用一些动态内存调试器工具,例如 valgrind。 -
专业提示:不要让事情过于复杂,它不会让你或你的代码变得更好。
-
尝试调试您的代码以查看错误发生的位置和原因?