#include "stdio.h"
#include "stdlib.h"
#include "string.h"
char * reverseWords(char * s){
char * start, * start2;
start = s;
while(*start != '\0'){
start ++;
}
-- start;
char s2[strlen(s)];
char * s2p = s2;
while(start > s){
while(*start == ' ') start --;
while(*start != ' ' && start >= s) start --;
start2 = start;
++start2;
while(*start2 != ' '){
*s2p++ = *start2++;
}
*s2p++ = ' ' ;
}
*s2p = '\0';
start = s;
s2p = s2;
while(*s2p!='\0') *start++ = *s2p++;
*start = '\0';
return s;
}
int main(int argc, char ** argv){
char s[] = "abc edf ghi lkm opq rst ";
printf("%s\n",reverseWords(s));
}
在 linux 机器上能编译运行正确 leetcode 提示==20==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x602000000020 at pc 0x563392652f73 bp 0x7ffefb8e0c40 sp 0x7ffefb8e0c30 READ of size 1 at 0x602000000020 thread T0
我是不是太贱了?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.