>>972
スマートポインタにどっぷりなんだろうよ。

>>974
俺は>>967ではないが。これ以上初心者向けには(俺には)できない。
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
    int i, j, length;
    char *a, temp;
    if (argc == 1) exit(1); /* 引数なしなら終了 */
    for (i = 1; i < argc; i++) { /* それぞれの引数に対して */
        length = strlen(argv[i]); /* 引数の文字数 */
        a = malloc(length + 1); /* 文字数分だけメモリの確保 */
        strcpy(a, argv[i]); /* aに引数をコピー */
        for (j = 0; j < length / 2; j++) { /* 文字列を反転 */
            temp = a[j]; /* あらかじめ文字を保存しておいて */
            a[j] = a[length - j - 1]; /* 手前を後ろの文字で置き換えて */
            a[length - j - 1] = temp; /* 後ろの文字をあらかじめ保存した文字で置き換える */
        }
        a[length - 1] = toupper(a[length - 1]); /* 最後の文字を大文字に */
        printf(a); /* 表示 */
        free(a); /* 確保したメモリの開放 */
        printf("\n"); /* 改行 */
    }
    return 0;
}