@skilet16

Почему strcat() останавливает работу программы?

Программа на Си останавливает выполнение на функции strcat()
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int x = -1, z = 1;
    char string[10] = { '\0' };


    while (x != 0)
    {
        printf("Vvedit chislo = ");
        scanf_s("%d", &x);
        z = x * z;
        strcat(string, z);
    }

    printf("%s\n", string);

    
    _getch();
    return 0;
}
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 2
includedlibrary
@includedlibrary
Потому что в strcat нужно передать указатель на строку, вы передаёте переменную z с типом int. В результате z интерпретируется, как адрес, по которому лежит строка и происходит ошибка сегментирования.
Ответ написан
Комментировать
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Прототип функции strcat():
char *strcat(char *dest, const char *src);
ни на какие мысли не наводит? :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы