【发布时间】:2013-05-12 23:39:18
【问题描述】:
我正在尝试编写一个 C 函数来反转传入的 C 样式字符串(即 char *)并返回反转字符串的 char 指针。但是当我在 VS2012 中运行它时,终端中没有打印任何内容,并且显示“main.exe 已停止工作”消息。
#include <stdio.h>
#include <string.h>
char * rrev_str(char * str )
{
char *revd_str=""; //I tried char revd_str []="" error: stack around "revd_str" is corrupted
int i,r;
int str_len=strlen(str);
for (i = str_len-1, r=0; i >=0; i--,r++)
{
revd_str[r]= str[i];
}
return revd_str;
}
int main(int argc, char* argv[])
{
char str1 [] ="STEETS";
char str2 [] ="smile everyday!";
//reverse "chars" in a C string and return it
char * rev_string=rrev_str(str1);
}
【问题讨论】:
-
stackoverflow.com/questions/8784099/… 和这个一样的问题..
-
运行时检查失败 #2 - 变量“revd_str”周围的堆栈已损坏。