В моем коде я хочу обновить содержимое глобального массива data
через функцию. Однако, когда я вызываю функцию, содержимое data
не изменяется, несмотря на функцию, вызывающую strcpy()
, чтобы произвести это изменение - впоследствии data
по-прежнему содержит «prg». Как я могу использовать strcpy()
или что-то подобное, чтобы написать новое значение для данных?strcpy() не пишет новую строку
char data[255] = "prg";
void process_tuple(Tuple *t)
{
//Get key
int key = t->key;
//Get integer value, if present
int value = t->value->int32;
//Get string value, if present
char string_value[32];
strcpy(string_value, t->value->cstring);
strcpy(data, "prg1212");
//Decide what to do
switch(key) {
case key_0:
break;
};
}
static WeatherAppDataPoint s_data_points[] =
{
{
.city = data,
.description = "surfboard :)",
.icon = WEATHER_APP_ICON_GENERIC_WEATHER,
.current = 110,
.high = 120,
.low = 100,
},
};
Как я могу исправить любую из этих проблем? Вам нужно будет увидеть больше кода? @Blindy – AgentSpyname
@AgentSpyname Создайте временный тест в 'main()', который (1) использует 'printf()' для вывода содержимого 'data', (2) вызывает' process_tuple() ', (3) использует' printf() 'для вывода содержимого« данных »снова после вызова. ** Если ** 'Tuple * t' вы проходите, это нормально и не вызывает выброса исключения, вы увидите, что значение изменяется, как и ожидалось. –
@MikeofSST Я немного попробую. Спасибо за вашу помощь – AgentSpyname