Zuweisen von optarg zu einem int in C

Ich versuche, einem int einen optarg-Wert zuzuweisen, aber der Compiler gibt folgende Warnung aus:

warning: assignment makes integer from pointer without a cast [enabled by default]

Ich habe versucht, optarg als int vor dem Auftrag zu gießen

n = (int) optarg;

aber immer noch eine Warnung bekommen:

warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]

Ich bin mir nicht sicher, was zu tun ist, bevor ich den optarg einfach einer ganzen Zahl zuweisen und dann ausdrucken kann (vorerst).

int main (int argc, char *argv[])
{
  char c;
  int n;

  while ((c = getopt(argc, argv, "m:")) != -1) {
    switch (c) {
    case 'm':
      n = optarg;
      break;
    }
  }

  printf("%d\n", n);

  return 0;
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage