Quando você adiciona um elemento usando os colchetes e ponteiro do array como visto acima, o ponteiro não é incrementado Você tem que incrementar o ponteiro um número de vezes até que ele está apontando para o elemento adicional, antes que você possa usá-lo para verificar se o valor retornado é NULL. O código a seguir ilustra isso para um dinâmico matriz int. #include using namespace std; int main () {int * listPtr = new int [5]; listPtr [0] = 0; listPtr [1] = 1; listPtr [2] = 2; listPtr [3] = 3; listPtr [4] = 4; //adiciona novo elemento.
listPtr [5] = 5; ++ listPtr; ++ listPtr; ++ listPtr; ++ listPtr; ++ listPtr; if (listPtr == null) {} cout --listPtr; --listPtr; --listPtr; --listPtr; --listPtr; retornar 0; } Você tem que diminuir o ponteiro, o mesmo número de vezes que você incrementados-lo. Se você não diminuir, o índice entre colchetes para o ponteiro deixará de reflectir o seu valor pretendido (original); sob essa condição, o ponteiro com o índice não retornará o valor correto. Leia o código acima, se você não tiver feito isso (tentar).
Há ainda um problema: Suponha que o novo elemento não pode ser adicionado porque o seu ponteiro apontaria para uma posição de memória que já tenha sido tomada por algum outro objeto desconhecido para nós. Nesse caso, quando você incrementa o ponteiro o número de vezes que ele ainda iria apontar para um endereço que existe que não é NULL. Neste caso, o check-se com NULL nos dirá que um endereço existe, mas o endereço não teria o nosso elemento (e seu valor). Esta é uma conclusão errada.
Um teste melhor é a seguinte: if (* listPtr = 5!) {Cout} No se-condição, nós cancelar o ponteiro para a posição de memória do suposto objeto adicionado e vemos se o valor retornado é o mesmo que o valor nós enviamos para o elemento adicionado. No programa acima do valor que foi enviado 5. Iterator Um ponteiro é o endereço de um objeto na memória. Vimos um problema acima que, quando você mover o ponteiro do array (nome de matriz) à frente um número de vezes, você tem que movê-lo para trás o mesmo número de vezes, caso contrário a