natuerlich. Eigentlich machst du das ja. mit

char* name = "liste.txt";

deklarierst du ja nur einen Zeiger auf ein Nullterminiertes Array of Char, laesst den Compiler eines mit vorgegebenem Inhalt erstellen und laesst dessen Addresse den Compiler dem Zeiger zuweisen.

Natuerlich kannst du auch selber einen Textbuffer einladen, ihn als nullterminiertes Zeichenarray speichern und die Addresse des ersten Zeichens statt name uebergeben.

eine einfache Moeglichkeit waere z.B. sowas ...

Code:
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;

...

FILE *datei; 
string namestr;

cout<<"Geben Sie einen Dateinamen an: ";
cin>>namestr;
datei = fopen(namestr.c_str(), "a+");

...