spa*_*ara 0 c encryption segmentation-fault
我需要帮助搞清楚为什么我在这里遇到分段错误.我已经过去了,我认为我的指针做错了,但我可以搞清楚是什么.
我的计划:
#include <stdlib.h>
#include <stdio.h>
void encrypt(char* c);
//characters are shifted by 175
int main(){
char* a;
*a = 'a';
/*SEGMENTATION FAULT HERE!*/
encrypt(a);
printf("test:%c/n",*a);
return 0;
};
void encrypt(char* c){
char* result;
int i=(int)(*c);
i+=175;
if(i>255)
{
i-=256;
}
*c=(char)i;
};
Run Code Online (Sandbox Code Playgroud)
问题出在这里:
char *a;
*a = 'a'
Run Code Online (Sandbox Code Playgroud)
由于变量"a"未初始化,*a ='a'分配给随机存储器位置.
你可以这样做:
char a[1];
a[0] = 'a';
encrypt(&a[0]);
Run Code Online (Sandbox Code Playgroud)
或者甚至只在你的情况下使用一个字符:
int main(){
char a = 'a';
encrypt(&a);
printf("test:%c/n",a);
return 0;
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
314 次 |
最近记录: |