C, структуры, простой пример протестует синтаксис ОБНОВЛЕНО - PullRequest
0 голосов
/ 12 сентября 2011

ОБНОВЛЕНО:

Я нашел ошибку, неправильные одинарные кавычки.Заменил его на двойные кавычки и работал нормально.Приносим извинения за доставленные неудобства, но вскоре их поймали.

=================================================================================

Это простойпример того, что должно быть объявление структуры и доступ к ее данным, но я получаю список ошибок, жалующихся на то, что «символьная константа слишком длинна для ее типа», а также «передача аргумента 1 в printf делает указатель из целого числа без приведения».Итак, программа вылетает с переполнением.Nombre - это имя, apellido - это фамилия, а edad - это возраст.Пытался собрать все это в структуре и распечатать результаты, получая к ним доступ через указатель.(Почему я должен получать к ним доступ через указатель, а не просто через точечную запись?)

#include <stdio.h>
#include <stdlib.h>

struct estructura_amigo {
 char nombre[30];
 char apellido[40];
 char telefono[10];
 int edad;
 };
struct estructura_amigo amigo = {
 'Juanjo',
 'Lopez',
 '592-0483',
 30
 };
struct estructura_amigo *p_amigo;
int main()
 {
 p_amigo = &amigo;
 printf( '%s tiene ', p_amigo->apellido );
 printf( '%i años ',  p_amigo->edad );
 printf( 'y su teléfono es el %s.\n' ,  p_amigo->telefono );
 }

1 Ответ

3 голосов
/ 12 сентября 2011

Используйте двойные кавычки, как это

printf( "%s tiene ", p_amigo->apellido );

В C одинарная кавычка = символ, двойная кавычка = строка.

А

printf( "%s tiene " , amigo.apellido );

должно работать, не нужно получать указатель на структуру.

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