Thắc mắc về phần con trỏ trong c++

Mọi người cho em hỏi phần khai báo trong main() sao cho đúng ạ?
Đề bài:

#include   <iostream>
#include  <vector>
#include  <string.h>

using namespace std;

void reverse(char *s) {
    int n = strlen(s);
    for (int i = 0; i < n/2; i++) {
        char k = *(s + i);
        *(s + i) = *(s + n - 1 - i) ;
        *(s + n - 1 - i) = k;
    }
    for (int i = 0; i < n; i++) {
        cout << s[i] ;
    }
}

int main () {
    char* s;
    cin >> *s;
    reverse(s) ;
}

Chào bạn, nếu như thắc mắc của bạn là phải nhập xâu char như thế nào trong hàm main thì mình khuyên bạn nên dùng hàm cin.getline(char*, n) để nhập xâu char nha.

2 Likes

char* s chỉ mới khai báo 1 con trỏ sẽ trỏ tới một vùng nhớ có kiểu char. Và tất nhiên chưa hề có vùng nhớ nào được cấp ở đây. Và nếu chưa có vùng nhớ nào được cấp thì làm sao có thể sử dụng được s ?
Nếu sử dụng con trỏ thì bạn phải control được việc sử dụng, khai báo cũng như quản lí vùng nhớ cho con trỏ đó.

4 Likes

vâng em cảm ơn mọi người ạ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?