所以,我正在尝试制作一个简单的程序来反转字符串。当谈到 C 时,我非常耳目一新,尤其是在理解记忆方面。这是我的代码:
#include <stdio.h>
#include <string.h>
void reverser(char to_bb[]){
int counter = strlen(to_bb); /* size of entry */
char reversed[counter]; /* creating blank array of same size */
int counter2 = 0;
for(counter - 1; counter >= 0; counter--){ /* loop to swap chars */
reversed[counter2] = to_bb[counter];
counter2++;
}
printf("The reversed: %s\n", reversed);
}
int main(){
char to_be_reversed[20];
puts("Enter the string to be reversed: ");
scanf("%19s", to_be_reversed);
reverser(to_be_reversed);
return 0;
}
问题是,我不断收到总线错误。我使用sizeof(to_bb)
并了解到它是 4 位,表示to_bb[]
只是我的 void 函数中的一个指针。我尝试了很多方法来提取字符串以便我可以操纵它(即调用它的元素),但我没有找到成功。我尝试strcpy()
使用*
.
感谢您的任何建议。记忆被证明是难以理解的!