Этот код является частью более крупной программы. Я хочу создать массив структур. Структура содержит два типа данных: char
и char*
, каждый из которых получает вход от пользователя. Я новичок и не в состоянии найти свой путь через это. Пожалуйста помоги.Невозможно сохранить строку в структуре
Ошибка генерируется: сегментация Fault 11.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct {
char ch;
char str[20];
}typ;
typ* add(char* str, char ch);
int main(int argc, char const *argv[]){
typ* arr;
arr = (typ*)malloc(sizeof(typ));
char* name;
name = (char*)malloc(10);
*(name + 0)= 'c';
*(name + 1)= 'a';
*(name + 2)= 'p';
*(name + 3)= '\0';
char c = 'k';
arr = add(name, c);
printf("%c\n", arr->ch);
printf("%s\n", arr->str);
return 0;
}
typ* add(char* str, char ch){
typ tempo;
strcpy(str, tempo.str);
printf("%s\n", str);
tempo.ch = ch;
typ* temp;
*temp = tempo;
return temp;
}
OK, новобранец. 1-й шаг - отступ, который вы кодируете, чтобы сделать его читаемым, иначе devs. просто перейдем к следующему вопросу. –
2-й шаг - запустить вашу программу под отладчиком. –
Именование типа типа 'typ' не помогает :( –