01/10/2018, 12:17

Con trỏ trong struct lồng nhau sử dụng như thê nào

Mình đang có một vấn là, không biết truy cập vào con trỏ trong struct ở bên trong như thế nào để gắn giá trị cho nó, nếu như là biến tĩnh thì mình thêm -> để trỏ đên struct bên trong và . để truy cập biến tĩnh là được, nhưng nếu là một con trỏ thì mình không biết làm thé nào, mong mọi người giúp đỡ, , mình có thử sv1->hoten->hoten nhưng không được cám ơn mọi người.

Dark.Hades viết 14:29 ngày 01/10/2018

Lần sau đăng bài thì đăng code chứ đừng đăng ảnh, ai cũng lười cả chứ không riêng gì bạn đâu, bắt người ta chép lại code là một tội ác diệt chủng:

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

struct sv
{
  struct hoso
  {
    char *hoten;
    char **tt;
    float diemktlt;
    struct sv *nextcon;
  } hs;
  struct sv *next;
};

typedef struct sv SinhVien;

int main(void)
{
  SinhVien *sv1 = (SinhVien*)malloc(sizeof(SinhVien));
  sv1->hs.diemktlt = 7.f;
  sv1->hs.hoten = "FUCK C";
  sv1->next = sv1;
  sv1->hs->nextcon = sv1; // COMPILE  ERROR
  sv1->hs->tt = ...; // COMPILE ERROR
  printf("%f, %s", sv1->hs.diemktlt, sv1->hs.hoten);
  return EXIT_SUCCESS;
}

Result:

7.000000, FUCK C

=> Trong C dù là con trỏ thì lớp thứ 2 cũng vẫn truy cập bằng .

Nobita viết 14:30 ngày 01/10/2018

Cám ơn bạn. Tại code cùng ngắn nên mình không đăng. Mình xin rút kinh nghiệm, chúc bạn buổi sáng tốt lành

Bài liên quan
0