Search Header Logo

puntatori, errori frequenti

Authored by Quentin Meneghini

Computers

University

Used 4+ times

puntatori, errori frequenti
AI

AI Actions

Add similar questions

Adjust reading levels

Convert to real-world scenario

Translate activity

More...

    Content View

    Student View

13 questions

Show all answers

1.

MULTIPLE CHOICE QUESTION

45 sec • 1 pt

int a;

double *pd;

pd = &a;

compiles

compiles with warning

does not compile

compiles but may result in segmentation fault

Answer explanation

Il codice non compila perché si sta cercando di assegnare l'indirizzo di una variabile intera 'a' a un puntatore di tipo 'double'. Questo è un errore di tipo, poiché i tipi non sono compatibili.

2.

MULTIPLE CHOICE QUESTION

45 sec • 1 pt

double b, c, *pd;

b = 3.14;

pd = &c;

*pd = &b;

compiles

compiles with a warning

does not compile

compiles but may result in segmentation fault

Answer explanation

The code does not compile because the line '*pd = &b;' attempts to assign the address of 'b' to the location pointed by 'pd', which is pointing to 'c'. This results in a type mismatch, leading to a compilation error.

3.

MULTIPLE CHOICE QUESTION

45 sec • 1 pt

double b, *pd;

*pd = 3.14;

b = *pd;

compiles

compiles with a warning

does not compile

compiles but may result in segmentation fault

Answer explanation

Il codice compila ma può causare un segmentation fault. Questo accade perché il puntatore 'pd' non è inizializzato prima di essere dereferenziato, portando a un accesso a memoria non valida.

4.

MULTIPLE CHOICE QUESTION

45 sec • 1 pt

int a;

a = &2;

compiles

compiles with a warning

does not compile

compiles but may result in a segmentation fault

Answer explanation

L'assegnazione 'a = &2;' cerca di assegnare l'indirizzo di un valore letterale, che non è valido. In C, non si può prendere l'indirizzo di un valore costante, quindi il codice non compila.

5.

MULTIPLE CHOICE QUESTION

45 sec • 1 pt

double b, c, *pd;

b = 3.14;

c = &(*pd);

compiles

compiles with a warning

does not compile

compiles but may result in segmentation fault

Answer explanation

The code does not compile because 'pd' is a pointer that has not been initialized. Dereferencing an uninitialized pointer leads to undefined behavior, making the statement 'c = &(*pd);' invalid.

6.

MULTIPLE CHOICE QUESTION

45 sec • 1 pt

int a;

double b = 3.14, *pd;

pd = &b;

a = *pd;

printf("%d\t%f\n", a, *pd);

compiles

compiles with a warning

does not compile

compiles but may result in segmentation fault

Answer explanation

Il codice compila correttamente. La variabile 'a' riceve il valore di 'b' tramite il puntatore 'pd', che è un cast implicito da double a int. Non ci sono errori di sintassi o di accesso alla memoria.

7.

MULTIPLE CHOICE QUESTION

45 sec • 1 pt

double b, *pd;

*pd = 3.14;

&b = pd;

compiles

compiles with a warning

does not compile

compiles but may result in segmentation fault

Answer explanation

Il codice non compila perché si tenta di dereferenziare un puntatore non inizializzato (*pd = 3.14;), il che causa un errore. Inoltre, l'assegnazione &b = pd; è errata poiché pd non è un indirizzo valido.

Access all questions and much more by creating a free account

Create resources

Host any resource

Get auto-graded reports

Google

Continue with Google

Email

Continue with Email

Classlink

Continue with Classlink

Clever

Continue with Clever

or continue with

Microsoft

Microsoft

Apple

Apple

Others

Others

Already have an account?