ТП
Татьяна Платонова

Помогите исправить ошибку в конце программы (язык Си). "Stack around the variable 'a' was corrupted."

поиск подстроки в строке 1000 раз.

#include
#include
#include
#include
#include
int main(void)
{
setlocale(LC_ALL, "Russian");
char a[50];
int i,i1;
int rp;
int k;
char pstr[4];
srand(time(NULL));

printf("Случайно сгенерированная строка: \n");
printf("\n______________________________________________\n");
for(i=0;i<50;i++)
{
k=1+rand()%;
a=(char)(96+k);
printf("%c",a);
}
printf("\n______________________________________________\n");
printf("\nВведите подстроку для поиска из 3 символов :");
gets(pstr);
printf("%s",pstr);
printf("\n______________________________________________\n");
printf("Резудьтат поиска: \n");
//printf("\n%s\n",strstr(a,pstr));

if(strstr(a,pstr)==NULL)
{

for(rp=0,i1=1;rp<=999;rp++,i1++)
{
k=0;
strcpy(a," ");
for(i=0;i<=50;i++)
{
k=1+rand()%;
a=(char)(96+k);
}
a[51]='\0';
printf("%d--%s\n",i1,strstr(a,pstr));
if(strstr(a,pstr)!=NULL)
{printf("\nСовпадение найдено\n");break;}

}

}

system("pause");
return 0;
}

ОС
Оля Суслова

где-то выход за пределы массива.

АК
Адалат Камильевна

1)
if(strstr(a,pstr)==NULL)
В массиве "а" присутствует хотя бы один элемент = '\0' ?
2)
a[51]='\0';
При том что индекс последнего элемента = 49

Похожие вопросы
Помогите написать программу на языке СИ/СИ++!!
Помогите составить программу на языке СИ
Помогите исправить ошибки в программе.
как исправить ошибку the following file missing or corrupted:
Помогите исправить ошибки в программе на языке СИ.
Помогите, пожалуйста, понять и исправить, что в программе не так, язык Си
the local variable is never read ошибка в программе Java
Помогите с ошибками: Notice: Undefined variable
Программа на Си, ошибка
Помогите исправить программу на языке си++