Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Có Phải Visual C++ Khác C ở Chỗ Mọi Biến Khai Báo điều Cần được Khởi Tạo?

  1. #1
    Ngày gia nhập
    09 2008
    Bài viết
    3

    Angry Có Phải Visual C++ Khác C ở Chỗ Mọi Biến Khai Báo điều Cần được Khởi Tạo?

    Chào mấy huynh, em có 2 đoạn code đơn giản nhưng khi chạy trên BC 3.1 và VC++ 6.0 thì thấy có sự khác nhau như sau:
    code1: Khi chạy trên 2 trình biên dịch thì đều cho kết quả giống nhau
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    int main(void)
    {
                 char a[100];	
    	printf("\nNhap chuoi: ");	
    	gets(a);
                 printf("\nDo dai cua chuoi tinh bang ham la: %d",strlen(a));
    	getch();
    	return(0);
    }
    code2: Thay kiểu mảng kí tự char a[100] bằng kiểu con trỏ char *a thì trình biên dịch BC 3.1 hoạt động bình thường còn VC++ 6.0 lại thông báo lỗi sau khi nhập chuoi, trình biên dịch hiển thị lỗi như sau:

    Các huynh nào có thể giải thích hộ đệ sự khác nhau này. Thanks các huynh trước

  2. #2
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Vứt BC 3 đê :|, lấy BC 2007 mà xài. Bản cũ rích bị lỗi tò te đó. VC 6 báo lỗi chỗ đó là đúng.
    None!

  3. #3
    Ngày gia nhập
    09 2008
    Bài viết
    3

    Trích dẫn Nguyên bản được gửi bởi Xcross87 Xem bài viết
    Vứt BC 3 đê :|, lấy BC 2007 mà xài. Bản cũ rích bị lỗi tò te đó. VC 6 báo lỗi chỗ đó là đúng.
    Bồ chắc có nên vứt BC 3.1 đi hong, tại vì học máy ở trường mình toàn sài bản này. Thế bây giờ các bạn cho mình hỏi sài bản VC++ 6.0 có được không, mình thấy đa số các bạn khác sài bản này.

  4. #4
    Ngày gia nhập
    02 2009
    Bài viết
    9

    Trích dẫn Nguyên bản được gửi bởi haidauda Xem bài viết
    Chào mấy huynh, em có 2 đoạn code đơn giản nhưng khi chạy trên BC 3.1 và VC++ 6.0 thì thấy có sự khác nhau như sau:
    code1: Khi chạy trên 2 trình biên dịch thì đều cho kết quả giống nhau
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    int main(void)
    {
                 char a[100];	
    	printf("\nNhap chuoi: ");	
    	gets(a);
                 printf("\nDo dai cua chuoi tinh bang ham la: %d",strlen(a));
    	getch();
    	return(0);
    }
    code2: Thay kiểu mảng kí tự char a[100] bằng kiểu con trỏ char *a thì trình biên dịch BC 3.1 hoạt động bình thường còn VC++ 6.0 lại thông báo lỗi sau khi nhập chuoi, trình biên dịch hiển thị lỗi như sau:

    Các huynh nào có thể giải thích hộ đệ sự khác nhau này. Thanks các huynh trước
    Đúng ra thì bạn phải cấp phát bộ nhớ cho a nếu khai báo a là con trỏ.
    Một số trình biên dịch sẽ không báo lỗi trong trường hợp này.

  5. #5
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    code2: Thay kiểu mảng kí tự char a[100] bằng kiểu con trỏ char *a thì trình biên dịch BC 3.1 hoạt động bình thường còn VC++ 6.0 lại thông báo lỗi sau khi nhập chuoi, trình biên dịch hiển thị lỗi như sau:
    Sử dụng con trỏ thì cần cấp phát, không báo lỗi mới là cái nguy hiểm của trình biên dịch, chương trình rắc rối một chút nó mới bung lỗi ra, lúc đó sửa mới khó.

    Cấp phát với C++ bạn dùng new và delete rất dễ sử dụng.

  6. #6
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,006

    Mặc định Có Phải Visual C++ Khác C ở Chỗ Mọi Biến Khai Báo điều Cần được Khởi Tạo?

    ko hiểu tại sao lại đem 1 trình biên dịch và 1 ngôn ngữ so sánh với nhau nhỉ ??

    theo mình biết thì ( có thể sai ) VC++ là 1 trình biên dịch

    C là 1 ngôn ngữ.

    sao lại so sánh với nhau ??
    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

  7. #7
    Ngày gia nhập
    09 2008
    Bài viết
    3

    Trích dẫn Nguyên bản được gửi bởi langman Xem bài viết
    ko hiểu tại sao lại đem 1 trình biên dịch và 1 ngôn ngữ so sánh với nhau nhỉ ??

    theo mình biết thì ( có thể sai ) VC++ là 1 trình biên dịch

    C là 1 ngôn ngữ.

    sao lại so sánh với nhau ??
    à, mình hơi thiếu sót mong bạn thông cảm nha. Cuối cùng xin cảm ơn tất cả mọi người đã giúp mình hiểu ra vấn đề....

Các đề tài tương tự

  1. cách khai báo 1 mảng không biết trước số phần tử
    Gửi bởi vihuynh trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 14
    Bài viết cuối: 23-09-2013, 01:14 AM
  2. Khai báo "Biến" trong lớp với từ khóa static, thì đó có phải là thuộc tính không?
    Gửi bởi phngcngtn trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 20-04-2012, 10:12 PM
  3. taị sao các biến static khi khai báo để dùng được lại phải khai báo lại trước hàm main ? ?
    Gửi bởi anhnpson trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 15-06-2011, 08:18 PM
  4. Cho hỏi các kiểu khai báo biến
    Gửi bởi hi_shinichi trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 28-04-2010, 10:47 AM
  5. Tìm lỗi khi khai báo biến
    Gửi bởi cr9 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 15-12-2009, 10:46 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn