我无法使以下算法在没有索引的情况下工作(使用索引有效)。对于我的大学来说,这是一个小练习,其中一项要求是我只能使用“指针引用”来遍历分配的数组(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)不起作用。

08-19 07:30