我无法使以下算法在没有索引的情况下工作(使用索引有效)。对于我的大学来说,这是一个小练习,其中一项要求是我只能使用“指针引用”来遍历分配的数组(frase),而不能遍历索引。我最后尝试使其正常工作的内容受到评论,我放弃了,因为我尝试的任何方法均不起作用...感谢您的帮助。
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
int main(){
char* frase;
frase = malloc(sizeof(char) * 100);
gets(frase);
/*
while(*frase != '\0'){
printf("%c", *frase);
frase++;
}
*/
int i = 0;
while(frase[i]){
printf("%c", toupper(frase[i]));
i++;
}
printf("\n");
free(frase);
}
最佳答案
问题是您释放了已更改的指针(实际上,frase
已使用frase++
增加了)
那么free(frase)
不起作用。