Ошибка при передаче строкового массива для функционирования в C ++C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Ошибка при передаче строкового массива для функционирования в C ++

Сообщение Anonymous »

Привет, ребята, у меня есть некоторые ошибки при прохождении некоторых строк массива в C ++, вы знаете, что не так с этим кодом, ребята?, спасибо < /p>

Код: Выделить всё

#include 
#include 

void showData(string data[]);

int main()
{

string namaMahasiswa[] = {"Nico", "Yonathan", "Andre", "Ratu"};

enum option{ SHOW = 5 };

switch (5)
{
case SHOW:
showData(namaMahasiswa);
break;
}
}

void showData(string data[])
{
for (int z = 0; z < sizeof(data) / sizeof(*data); z++)
{
cout 
'int main()':
index.cpp:61:18: error: could not convert '(std::string*)(& namaMahasiswa)' from 'std::string*' {aka 'std::__cxx11::basic_string*'} to 'std::string' {aka 'std::__cxx11::basic_string'}
61 |         showData(namaMahasiswa);
|                  ^~~~~~~~~~~~~
|                  |
|                  std::string* {aka std::__cxx11::basic_string*}

In function 'void showData(std::string*)':
index.cpp:83:36: warning: 'sizeof' on array function parameter 'data' will return size of 'std::string*' {aka 'std::__cxx11::basic_string*'} [-Wsizeof-array-argument]
83 |     for (int z = 0; z < sizeof(data) / sizeof(*data); z++)

index.cpp:80:22: note: declared here
80 | void showData(string data[])
Так что это означает, что мы не можем передавать строковые массивы в такую функцию, или, может быть, я использую какой -то символ?

Подробнее здесь: https://stackoverflow.com/questions/709 ... ction-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»