只是一个简单的程序来习惯指针。该程序应该以与读取内存的相反顺序将我的一部分内存的内容放入字符数组中。IE查看降序内存地址,我想将它按降序存储在字符数组中。
我的编译器一直告诉我:“赋值错误类型不兼容”
用realloc函数就行了
我究竟做错了什么?在我看来,“反向”和realloc的结果都应该是指向 char 类型的指针?
我的代码:
int main(){
char first[]="hello mark", strng='h', reverse[]="";
char* ptr=&first[10];
int i=0;
while(ptr > (&strng-0xf4240)){
printf("%c", *ptr--);
reverse = realloc(reverse, (i++ * sizeof(char)));
reverse[strlen(reverse)-i] = *ptr;
}
printf("%s", reverse);
return 0;
}
谢谢!
编辑:对不起,我将这些错误发布为下面的评论
感谢帮助,第一条和第二条评论搞定了!我确实有所需的#include,我只是忘记将它们复制到堆栈溢出中。你是对的,现在我被困在非空终止的 strlen() 上。我会自己解决那个。再次感谢!
我说得太早了,编译好了,但是有逻辑错误。while 循环将执行一次。但是,无论 i 的初始值如何,后续循环仍然会失败。导致失败的行是调用 realloc 的行