A gunman opened fire inside a busy shopping mall in the Danish capital on Sunday (local time), killing several people and wounding several others, police said.
The shooting left three people dead and at least three more victims critically injured.
A 22-year-old Danish man was arrested, Copenhagen police inspector Søren Thomassen told reporters, adding there was no indication that anyone else was involved in the attack, though police were still investigating.
Gun violence is relatively rare in Denmark.
Thomassen said it was too early to speculate on the motive for the shooting, which happened in the late afternoon at Field's, one of the biggest shopping malls in Scandinavia and located on the outskirts of the Danish capital. When the shots rang out, some people hid in shops while others fled in a panicked stampede, witnesses said.
"It is pure terror. This is awful," said Hans Christian Stoltz, a 53-year-old IT consultant, who was taking his daughters to see Harry Styles perform at a concert scheduled for Sunday night near the mall. "You might wonder how a person can do this to another human being, but it's beyond ... beyond anything that's possible."
Thomassen gave no specific casualty count beyond saying several people were dead and several wounded. He said the suspect was an "ethnic Dane", a phrase typically used to mean someone is white.
Danish broadcaster TV2 published a grainy photo of the alleged gunman, a man wearing knee-length shorts and a tank top and holding what appeared to be a rifle in his right hand.
"He seemed very violent and angry," eyewitness Mahdi Al-Wazni told TV2. "He spoke to me and said it (the rifle) isn't real as I was filming him. He seemed very proud of what he was doing."
Danish Prime Minister Mette Frederiksen said the Scandinavian country had been hit by a "cruel attack".
"It is incomprehensible. Heartbreaking. Pointless," she said. "Our beautiful and usually so safe capital was changed in a split second."
Images from the scene showed people running out of the mall, and TV2 posted a photo of a man being put on a stretcher. After the shooting, an enormous contingent of heavily armed police officers patrolled the area, with several fire department vehicles also parked outside the mall.
Laurits Hermansen told Danish broadcaster DR that he was in a clothing store at the shopping centre with his family when he heard "three, four bangs. Really loud bangs. It sounded like the shots were being fired just next to the store."
The shopping centre is on the outskirts of Copenhagen just across from a subway station for a line that connects the city centre with the international airport. A major highway also runs adjacent to the mall.
Organisers called off the Harry Styles concert, which had been scheduled at the nearby Royal Arena, by order of police.
On Snapchat, Styles wrote: "My team and I pray for everyone involved in the Copenhagen shopping mall shooting. I am shocked. Love H."
The royal palace said a reception with Crown Prince Frederik connected to the Tour de France cycling race had been cancelled. The first three stages of the race were held in Denmark this year. The reception was due to be held on the royal yacht that is moored in Soenderborg, the town where the third stage ended.
In a joint statement, Queen Margrethe, her son Crown Prince Frederik and his wife, Crown Princess Mary, said: "We do not yet know the full extent of the tragedy, but it is already clear that more people have lost their lives and that even more have been injured."
"The situation calls for unity and care," they said in a statement.
The shooting came a week after a mass shooting in neighbouring Norway, where police said a Norwegian man of Iranian origin opened fire during an LGBTQ festival, killing two and wounding more than 20.
Though the number of victims in Copenhagen on Sunday was unclear, it appeared to be the worst gun attack in Denmark since February 2015, when a 22-year-old man was killed in a shootout with police after going on a shooting spree in the capital that left two people dead and five police officers wounded.