75 / 36 / 1
Регистрация: 03.08.2012
Сообщений: 447
|
|||||||||||
1 | |||||||||||
error C2664: itoa: невозможно преобразовать параметр 1 из 'int *' в 'int' + запись в файл14.09.2013, 08:22. Показов 2580. Ответов 16
Метки нет (Все метки)
Подскажите пожалуйста как быть... в конструктор приходит *int и мне нужно создать файл, с именем таким же, что и значение, которое приходит по этому адресу.
Я погуглил и вот так вот можно делать:
0
|
14.09.2013, 08:22 | |
Ответы с готовыми решениями:
16
error C2664: Display: невозможно преобразовать параметр 1 из 'int [5]' в 'int" error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int' Исправить ошибку C2664: fcvt: невозможно преобразовать параметр из "int" в "int *" выдаёт error C2440: =: невозможно преобразовать 'int' в 'int [100] |
Неэпический
|
||||||
14.09.2013, 08:24 | 2 | |||||
0
|
75 / 36 / 1
Регистрация: 03.08.2012
Сообщений: 447
|
||||||
14.09.2013, 08:36 [ТС] | 3 | |||||
Если я на вход itoa() подам просто int, пример:
Добавлено через 1 минуту вот в чем тут косяк, он принимает чистый int, а не указатель, да? Но мне в конструктор приходит именно указатель *int. Подскажите пожалуйста как в itoa передать интовое значение из *flightNumber
0
|
75 / 36 / 1
Регистрация: 03.08.2012
Сообщений: 447
|
||||||
14.09.2013, 08:40 [ТС] | 5 | |||||
Добавлено через 1 минуту вот так вот правильно? с простым целым числом работает все хорошо. Но если передать указатель, то оно не хочет из него брать значение
0
|
75 / 36 / 1
Регистрация: 03.08.2012
Сообщений: 447
|
||||||
14.09.2013, 08:51 [ТС] | 9 | |||||
Это конструктор, вот так:
Но ведь если бы *flightNumber в конструктор приходил NULL, то this. .... не записывал бы значение, которое приходит. А он записывает так как нужно.
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
||||||
14.09.2013, 08:57 | 10 | |||||
расскажи пожалуйста что ты хотел получить и накой ляд тебе указатель?
пойдем по шагам объявим указатель, который на данный момент указывает в никуда вот здесь ты присваиваешь указателю, нет не число, а адрес в памяти на который будет указывать указатель, даже если ты не ошибешься и он будет указывать на правильный диапазон, то в памяти то все равно мусор и вот здесь ты отдаешь совершенно неправильный указатель попробуй так
0
|
75 / 36 / 1
Регистрация: 03.08.2012
Сообщений: 447
|
|
14.09.2013, 09:08 [ТС] | 11 |
А почему тогда вот эта строка заносит правильное значение? Именно то, которые я ввел с клавиатуры в мейне:
this->flightNumber = flightNumber; Добавлено через 1 минуту указатель потому, что в структуре есть переменная: int *flightNumber; и для этого объекта я ее так инициализирую. или лучше к чертям убрать все указатели и сделать все с нормальными переменными... я уже 6 часов не могу сделать это задание(
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
|||||||||||
14.09.2013, 09:15 | 12 | ||||||||||
где ты её инициализируешь?
чтобы указатель указывал правильно нужно выделить память например так
она и будет заносить что ты завел с клавы но обращение по этому адресу вызовет крах программы почитай что такое указатели и с чем их едят
0
|
75 / 36 / 1
Регистрация: 03.08.2012
Сообщений: 447
|
|
14.09.2013, 09:20 [ТС] | 13 |
угу... тоесть значение хранит верное, а адрес крах? я понял... хорошо!
Добавлено через 1 минуту а я память нигде не выделял... я просто давал значение и думал, что оно само выделяется раз инициализируется чем-то.
0
|
75 / 36 / 1
Регистрация: 03.08.2012
Сообщений: 447
|
|
14.09.2013, 09:34 [ТС] | 15 |
получается:
int *flightNumber; scanf("%d", &flightNumber); я думал, что когда я так делаю в определенный участок памяти заносится то, что я ввожу, тоесть конкретно int значение. но получается, что это указываю адрес памяти? и все... Чтобы было так как мне нужно, нужно выделить память, а только потом задавать значение? Тогда в этой области памяти будет хранится, то что мне нужно? вот так? int * a = new int; scanf("%d", &a);
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
|||||||||||
14.09.2013, 09:38 | 16 | ||||||||||
не совсем
или так
0
|
75 / 36 / 1
Регистрация: 03.08.2012
Сообщений: 447
|
|
14.09.2013, 09:44 [ТС] | 17 |
Да, хорошо. Спасибо большое!!!
0
|
14.09.2013, 09:44 | |
14.09.2013, 09:44 | |
Помогаю со студенческими работами здесь
17
Ошибка error C2440: инициализация: невозможно преобразовать 'int' в 'int []' невозможно преобразовать параметр 4 из 'int' в 'int []' Невозможно преобразовать параметр 1 из 'int [9]' в 'int' невозможно преобразовать параметр 3 из 'int [8][5]' в 'int **' Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |