Tại sao code này của em không chạy được ạ. Mặc dù nó ko báo lỗi
#include<iostream>
using namespace std;
int main(){
int *a;
*a=3;
cout<<*a+97;
}
Tại sao code này của em không chạy được ạ. Mặc dù nó ko báo lỗi
#include<iostream>
using namespace std;
int main(){
int *a;
*a=3;
cout<<*a+97;
}
Con trỏ int *a của bạn được khai báo nhưng chưa được cập phát hoặc trỏ tới vùng nhớ nào cả cho nên khi bạn dùng toán tử gán *a = 3 -> Nghĩa là gán giá trị của vùng nhớ mà con trỏ a trỏ tới (chưa xác định) là 3 dẫn tới lỗi Segmentation fault.
Có thể sửa như sau:
int main(){
int *a;
int b;
a = &b;
*a=3;
cout<<*a+97;
}
hoặc
int main(){
int *a;
a = (int *) malloc (sizeof(int));
*a=3;
cout<<*a+97;
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?