2011-09-12 6 views
0

업데이트 :C, 구조체, 간단한 예제 시위 구문 업데이트

버그를 발견했습니다. 작은 따옴표가 잘못되었습니다. 큰 따옴표로 바꿔 잘 작동했습니다. 불편을 끼쳐 드려 죄송합니다. 곧 잡았습니다.

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

이것은 그 데이터 구조를 선언 액세스되어야 하는지를 간단한 예이고 그러나 "문자 상수가 해당 형식에 비해 너무 깁니다"라는 오류 목록과 "printf에서 인수 1을 전달하면 캐스팅하지 않고 정수에서 포인터를 만듭니다"라는 오류 목록이 표시됩니다. 따라서 프로그램이 오버플로와 충돌합니다. 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); 
} 

답변

3

사용 따옴표를,이

C 따옴표에서
printf("%s tiene ", p_amigo->apellido); 

= 문자처럼 큰 따옴표 = 끈.

그리고

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

는 구조체에 대한 포인터를 얻을 필요가 작동하지합니다.