提前谢谢你,我是C编程新手,所以我会尽可能地解释我的问题。我无法访问结构体字符数组中的任何元素,我得到了"分割错误",结构体被实现为堆栈。
typedef struct Nodo
{
int valor;
char nombre[50];
}Nodo;
void push(Nodo** p, int v, char nom[])/*char aut,char gen,int valo*/
{
Nodo *nuevo = (Nodo*)malloc(sizeof(Nodo));
nuevo->valor=v;
nuevo->nombre[50];
nuevo->sig=*p;
*p=nuevo;
}
void getliner(char* nom[50])
{
printf("Escriba el nombre de la canciónn");
fgets(nom, 50, stdin);
nom[strlen(nom) -1] = ' ';
printf("The user has entered %sn",nom);
}
void clear(void)
{
while ( getchar() != 'n' );
}
int main(int argc, char const *argv[])
{
int i = 0;
char nom[50];
Nodo* p = NULL;
printf("Agregar texton");
getliner(&nom);
for(int i = 0;nom[i]==' ';i++)
{
p->nombre[i]=nom[i];
}
printf("%cn",p->nombre[0]);
{
在main
中,您有:
Nodo *p = NULL;
...
for ( ... ) {
p->nombre[i]=nom[i];
}
所以p
是NULL
,它不指向任何东西。因此产生的分割错误是不足为奇的。
使用malloc分配内存,或者不使用指针。