gpt4 book ai didi

c - 在 C 中使用 char** 时出现运行时错误 "load of null pointer of type char"

转载 作者:行者123 更新时间:2023-11-30 19:24:27 30 4
gpt4 key购买 nike

我在使用此指针指向表示字符串数组的字符时遇到问题。

我应该使用某个偏移量 i 取消引用它以获取第 i 个字符串,然后使用其他一些偏移量 j 取消引用结果以获取该字符串的第 j 个字符。

根据我的理解,假设索引是入站的,我可以通过几种语法方式来做到这一点,例如,获取第二个字符串的第 6 个字符:

char* myFun(char** strs, int size){
char a;
int i=2,j=6;
a=strs[i][j];
a=*(strs[i]+j);
a=(*strs+i)[j];
a=*(*(strs+i)+j);
}

但是,我收到运行时错误运行时错误:在以下代码的for循环行上加载类型为'char'的空指针,也许,该错误不是我怀疑的错误,但这就是我向您寻求帮助的原因。

char * myFn(char ** strs, int strsSize){
if(*strs=NULL || strsSize==0){
printf("empty first string, or empty array of strings\n");
return NULL;
}
int i,pf_s=1;
char * pf_str=(char*)calloc(pf_s,sizeof(char));
for(i=0;*(strs[0]+i)!='\0';++i){// <-------- runtime error
if(!(i<pf_s-2)){
pf_s=pf_s*2;
pf_str=(char*)realloc(pf_str,2*pf_s*sizeof(char));
}
*(pf_str+i)=(*strs)[i];
}
pf_str[i]='\0';
pf_str=(char*)realloc(pf_str,i+1*sizeof(char));
printf("%s\n",pf_str);
return pf_str;
}

最佳答案

在第二行代码中,NULL 被分配给 *strs,而不是将 *strs 与 NULL 进行比较。

更改此:

if(*strs=NULL || strsSize==0){

进入此:

if(*strs==NULL || strsSize==0){

关于c - 在 C 中使用 char** 时出现运行时错误 "load of null pointer of type char",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60270648/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com