0 c
任务可以在这里找到:http://www.talentbuddy.co/challenge/51846c184af0110af3822c32
我关于这项任务的计划如下:
#include <stdio.h>
#include<string.h>
void tokenize_query(char *query, char *punctuation) {
int i,j,ok=1,k,t;
char x[1000];
for(i=0;i<strlen(query);i++)
{
ok=1;
for(j=0;j<strlen(punctuation);j++)
{
if(query[i]==punctuation[j] || query[i]==' ')
ok=0;
}
if(ok!=0)
{
x[k]=query[i];
k++;
}
else {
for(t=0;t<k;t++)
{
printf("%c",x[t]);
}
k=0;
printf("\n");
}
}
}
Run Code Online (Sandbox Code Playgroud)
k 是没有初始化的
x[k]=query[i];
Run Code Online (Sandbox Code Playgroud)
所以你可能会试着写出超出分配的内存的末尾x.
最简单的解决方法是k在声明它时初始化
int i,j,ok=1,k=0,t;
// ^^
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |