процесс вернул -1073741819 <0xC0000005> - PullRequest
0 голосов
/ 27 января 2019

Я новичок в кодировании и изучении языка c как мой первый шаг.когда я использую строковую функцию, программа возвращается со значением, не показывая вывод.используя minGW в качестве компилятора

я попытался добавить строку папки заголовка string.h, снизу следует код

''''
#include <stdio.h>
#include <conio.h>

int main()
{
    /*
    int strlen(string);
    */
    char name = { 's','i','l','a','m','\0' };

    int length;

    length = strlen(name);
    printf("the length of %s is %d\n", name, length);

    getch();
    return 0;
}
'''

код заканчивается здесь

ожидается печать длины символаимя, но происходит сбой, как в журнале сборки «Процесс завершен со статусом -1073741819» в предупреждении о сообщениях сборки: передача аргумента 1 в «strlen» делает указатель из целого числа без преобразования [-Wint-преобразование] |примечание: ожидается 'const char *', но аргумент имеет тип 'char' |

, спасибо за просмотр

Ответы [ 2 ]

0 голосов
/ 27 января 2019

Наслаждайтесь:

#include <stdio.h>
#include <string.h>

int main()
{
    // single char can't store that string
    // so we have to declare an array of chars
    char name[] = {'s', 'i', 'l', 'a', 'm', '\0'}; 
    // also we can use string literal syntax:
    // char name[] = "silam";
    int length = strlen(name);
    printf("the length of %s is %d\n", name, length);
    getc(stdin);
    // i don't have <conio.h> so i call 'getc' instead of 'getch'
    return 0;
}
0 голосов
/ 27 января 2019

Вы объявляете name как char, но обрабатываете его как массив.Чтобы объявить name как массив char, используйте:

char name[] = { 's','i','l','a','m','\0' };

Также, так как вы ссылаетесь на функцию strlen(), вы должны добавить файл заголовка:

#include <string.h>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...