Memcpy函数在C中崩溃

lea*_*pal 1 c pointers memcpy

我在我的程序中使用memcpy并将其用作语法.但是这个功能崩溃了.我在这里阅读了一些帖子并试图初始化我的char数组,但我没有在这里得到问题.任何人都可以看看吗?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[]) {
    int i;
    char *str_result;
    char *str_dst = NULL;
    str_result = (char *) malloc(100);
    str_dst = (char *) malloc(100);

    str_result = "Action done";
    size_t len = strlen(str_result);
    printf("string length is = %d\n", len);
    memcpy(str_dst, str_result, len);
    str_dst [len] = '\0';
    for (i = 0; i < len; i++) {
        printf("%s\n", str_dst[i]);
    }
    free(str_dst);
    free(str_result);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

squ*_*age 5

错误在这里:

free (str_result);
Run Code Online (Sandbox Code Playgroud)

在该行之后str_result = "Action done";,str_result不再指向您保留的100字节内存块,而是指向字符串(const char*)"Action done".你不能释放这个指针.